package com.mengniu.commerce.sync.api.domain;

import lombok.Data;


import java.util.List;

@Data
public class CreateOrderModel extends ExtModel {

    /**
     * 旗帜
     */
    private Integer banner;

    /**
     * 业态编码
     */
    private String businessType;

    /**
     * 业态名称
     */
    private String businessTypeName;

    /**
     * 业务单元编码
     */
    private String businessUnitCode;

    /**
     * 买家账号
     */
    private String buyerAccount;

    /**
     * 买家备注
     */
    private String buyerNote;

    /**
     *确认收货日期
     */
    private String confirmReceiptTime;

    /**
     * 收货详细地址
     */
    private String deliveryAddressDetail;

    /**
     * 运费金额
     */
    private String freightAmount;

    /**
     * 来源系统编码
     */
    private String fromSys;

    /**
     * 修改日期
     */
    private String modifierTime;

    /**
     * 订单行备注
     */
    private String note;

    /**
     * 单据明细列表
     */
    private List<OrderItem> orderItemList;

    /**
     * 实付金额
     */
    private String paidAmount;

    /**
     * 应付金额
     */
    private String payableAmount;

    /**
     * 邮编
     */
    private String postalCode;

    /**
     * 抵扣金额
     */
    private String promotionAmount;

    /**
     * 收货人名称
     */
    private String receiverName;

    /**
     * 收货人手机号
     */
    private String receiverPhone;

    /**
     * 收货市编码
     */
    private String receivingCityCode;

    /**
     * 收货市名称
     */
    private String receivingCityName;

    /**
     * 收货国家编码
     */
    private String receivingCountryCode;

    /**
     * 收货国家名称
     */
    private String receivingCountryName;

    /**
     * 收货区县编码
     */
    private String receivingDistrictCode;

    /**
     * 收货区县名称
     */
    private String receivingDistrictName;

    /**
     * 收货省份编码
     */
    private String receivingProvinceCode;

    /**
     * 收货省份名称
     */
    private String receivingProvinceName;

    /**
     * 收货街道编码
     */
    private String receivingStreetCode;

    /**
     * 收货街道名称
     */
    private String receivingStreetName;

    /**
     * 订单类型编码
     */
    private String salesOrderType;

    /**
     * 发货时间
     */
    private String shipTime;

    /**
     * 来源单号
     */
    private String sourceOrderNo;

    /**
     * 店铺编码
     */
    private String storeCode;

    /**
     * 店铺名称
     */
    private String storeName;

    /**
     * 下单日期
     */
    private String sourceCreateTime;

    @Data
    public static class OrderItem extends ExtModel {

        /**
         * 原品行号
         */
        private String buyItemNo;

        /**
         * 买赠标识
         */
        private String giftFlag;

        /**
         * 产品编码
         */
        private String innerProductCode;

        /**
         * 产品名称
         */
        private String innerProductName;

        /**
         * 订单行备注
         */
        private String note;

        /**
         * 单据活动明细
         */
        private List<OrderItemActivity>  orderItemActivityList;

        /**
         * 单据物流明细
         */
        private List<OrderItemLogistic>  orderItemLogisticList;

        /**
         * 计划发货日期
         */
        private String plannedDeliveryTime;

        /**
         * 产品条码
         */
        private String productBarCode;

        /**
         * 销售数量
         */
        private Integer productQuantity;

        /**
         * 优惠总金额
         */
        private String itemPromotionAmount;

        /**
         * 销售单位编码
         */
        private String salesUnitCode;

        /**
         * 销售单位名称
         */
        private String salesUnitName;

        /**
         * 子单号
         */
        private String sourceOrderItemNo;

        /**
         * 库存转换数量
         */
        private Integer stockConversionNum;

        /**
         * 库存单位编码
         */
        private String stockUnitCode;

        /**
         * 库存单位名称
         */
        private String stockUnitName;

        /**
         * 常规总金额
         */
        private String totalAmount;

        /**
         * 单位转换关系
         */
        private Integer unitConversionRelationship;

        /**
         * 常规单价
         */
        private String unitPrice;

    }
    @Data
    public static class OrderItemActivity extends ExtModel {

        /**
         * 活动id
         */
        private String activityId;

        /**
         * 活动类型
         */
        private String activityType;
    }


    @Data
    public static class OrderItemLogistic extends ExtModel {

        /**
         * 快递单号
         */
        private String courierNo;

        /**
         * 快递公司名称
         */
        private String expressCompanyName;

        /**
         * 快递公司编码
         */
        private String expressCompanyNo;

        /**
         * 发货数量
         */
        private Integer shipQuantity;

        /**
         * 发货时间
         */
        private String shipTime;
    }



}
